// pages/history/history.js
const incidentAPI = require('../../api/incident.js')
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    open: {
      incidentList: [],
      totalPage: 0,
      currentPage: 0
    },
    closed: {
      incidentList: null,
      totalPage: 0,
      currentPage: 0
    },
    currentTab: 0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.setNavigationBarTitle({
      title: 'Incident History'
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    let auth = app.globalData.authentication;
    const that = this;
    if (typeof auth !== "string") {
      wx.redirectTo({
        url: "../index/index"
      })
      return;
    }

    // that.setData({
    //   open: {
    //     totalPage: 2,
    //     currentPage: 1,
    //     incidentList: [{
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281891588753612,
    //       "incidentStatus": "Open",
    //       "name": "(sprint 40 demo)location: geo point",
    //       "createdDate": 1526207314923,
    //       "hasJournal": false,
    //       "notificationIds": [281891588846439],
    //       "createdName": "Albert Luo",
    //       "status": "A",
    //       "resourceBundleId": 448605039100579,
    //       "duration": 3414,
    //       "createdId": 444206992591625,
    //       "lastModifiedId": 444206992591625,
    //       "lastModifiedDate": 1526207314923,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Albert Luo",
    //       "incidentAction": "Launch"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281891588753611,
    //       "incidentStatus": "Open",
    //       "name": "(sprint 40 demo)location: geo point",
    //       "createdDate": 1526206998334,
    //       "hasJournal": false,
    //       "notificationIds": [281891588846438],
    //       "createdName": "Albert Luo",
    //       "status": "A",
    //       "resourceBundleId": 448605039100579,
    //       "duration": 3730,
    //       "createdId": 444206992591625,
    //       "lastModifiedId": 444206992591625,
    //       "lastModifiedDate": 1526206998334,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Albert Luo",
    //       "incidentAction": "Launch"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281754149608873,
    //       "incidentStatus": "Open",
    //       "name": "EARTHQUAKE WARNING",
    //       "createdDate": 1525875836559,
    //       "hasJournal": false,
    //       "notificationIds": [281754149632115],
    //       "createdName": "Aria shu",
    //       "status": "A",
    //       "resourceBundleId": 888409690211649,
    //       "duration": 334892,
    //       "createdId": 281616710637226,
    //       "lastModifiedId": 281616710637226,
    //       "lastModifiedDate": 1525875836559,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Aria shu"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281754149608872,
    //       "incidentStatus": "Open",
    //       "name": "EARTHQUAKE WARNING",
    //       "createdDate": 1525864632174,
    //       "hasJournal": false,
    //       "notificationIds": [281754149632114],
    //       "createdName": "Aria shu",
    //       "status": "A",
    //       "resourceBundleId": 888409690211649,
    //       "duration": 346096,
    //       "createdId": 281616710637226,
    //       "lastModifiedId": 281616710637226,
    //       "lastModifiedDate": 1525864632174,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Aria shu"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281754149608849,
    //       "incidentStatus": "Open",
    //       "name": "(Sprint 37) CMDB Lookup",
    //       "createdDate": 1525851229282,
    //       "hasJournal": false,
    //       "notificationIds": [281754149632057],
    //       "createdName": "Albert Luo Multiple",
    //       "status": "A",
    //       "resourceBundleId": 444206992590733,
    //       "duration": 359499,
    //       "createdId": 884011643701506,
    //       "lastModifiedId": 884011643701506,
    //       "lastModifiedDate": 1525851229282,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Albert Luo Multiple"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281754149608812,
    //       "incidentStatus": "Open",
    //       "name": "PRELIMINARY EARTHQUAKE REPORT",
    //       "createdDate": 1525831800725,
    //       "hasJournal": false,
    //       "notificationIds": [281754149631953],
    //       "createdName": "Aria shu",
    //       "status": "A",
    //       "resourceBundleId": 888409690211649,
    //       "duration": 378928,
    //       "createdId": 281616710637226,
    //       "lastModifiedId": 281616710637226,
    //       "lastModifiedDate": 1525831800725,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Aria shu"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281754149608811,
    //       "incidentStatus": "Open",
    //       "name": "PRELIMINARY EARTHQUAKE REPORT",
    //       "createdDate": 1525831755002,
    //       "hasJournal": false,
    //       "notificationIds": [281754149631952],
    //       "createdName": "Aria shu",
    //       "status": "A",
    //       "resourceBundleId": 888409690211649,
    //       "duration": 378973,
    //       "createdId": 281616710637226,
    //       "lastModifiedId": 281616710637226,
    //       "lastModifiedDate": 1525831755002,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Aria shu"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281616710664255,
    //       "incidentStatus": "Open",
    //       "name": "PRELIMINARY EARTHQUAKE REPORT",
    //       "createdDate": 1525831108841,
    //       "hasJournal": false,
    //       "notificationIds": [281616710700854],
    //       "createdName": "Aria shu",
    //       "status": "A",
    //       "resourceBundleId": 888409690211649,
    //       "duration": 379620,
    //       "createdId": 281616710637226,
    //       "lastModifiedId": 281616710637226,
    //       "lastModifiedDate": 1525831108841,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Aria shu"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281616710664254,
    //       "incidentStatus": "Open",
    //       "name": "PRELIMINARY EARTHQUAKE REPORT",
    //       "createdDate": 1525830826327,
    //       "hasJournal": false,
    //       "notificationIds": [281616710700852],
    //       "createdName": "Aria shu",
    //       "status": "A",
    //       "resourceBundleId": 888409690211649,
    //       "duration": 379902,
    //       "createdId": 281616710637226,
    //       "lastModifiedId": 281616710637226,
    //       "lastModifiedDate": 1525830826327,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Aria shu"
    //     }, {
    //       "accountId": 448605039100272,
    //       "organizationId": 888409690211392,
    //       "id": 281616710664253,
    //       "incidentStatus": "Open",
    //       "name": "PRELIMINARY EARTHQUAKE REPORT",
    //       "createdDate": 1525830568756,
    //       "hasJournal": false,
    //       "notificationIds": [281616710700851],
    //       "createdName": "Aria shu",
    //       "status": "A",
    //       "resourceBundleId": 888409690211649,
    //       "duration": 380160,
    //       "createdId": 281616710637226,
    //       "lastModifiedId": 281616710637226,
    //       "lastModifiedDate": 1525830568756,
    //       "phaseStatus": {
    //         "phaseNodeType": "Begin",
    //         "id": 1001,
    //         "incidentStatus": "Open",
    //         "status": "A",
    //         "isDefault": true,
    //         "name": "New",
    //         "seq": 100
    //       },
    //       "lastModifiedName": "Aria shu"
    //     }]
    //   }
    // })
    // return;
    this.loadOpenIncidentData();
  },
  incidentItemClick: function (options) {
    const incidentId = options.target.dataset.id;
    const currentTab = this.data.currentTab;
    const incident = this.data[currentTab === 0 ? 'open' : 'closed'].incidentList.find(item => {
      return item.id === incidentId;
    });
    wx.navigateTo({
      url: '../detail/detail?incident=' + JSON.stringify(incident),
    })
  },
  loadOpenIncidentData: function (pageNo = 1) {
    const that = this;
    if (pageNo === 1) {
      that.data.open.incidentList = [];
    }
    wx.showLoading({
      title: 'Loading...',
      mask: true
    });
    const doneCallBack = () => {
      wx.hideLoading();
    }
    incidentAPI.getOpenIncidents(pageNo, res => {
      let oldList = that.data.open.incidentList || [];
      that.setData({
        open: {
          incidentList: oldList.concat(res.data.page.data),
          totalPage: res.data.page.totalPageCount,
          currentPage: res.data.page.currentPageNo
        }
      })
      doneCallBack();
    })
  },
  loadClosedIncidentData: function (pageNo = 1) {
    const that = this;
    if (pageNo === 1) {
      that.data.closed.incidentList = [];
    }
    wx.showLoading({
      title: 'Loading...',
      mask: true
    });
    const doneCallBack = () => {
      wx.hideLoading();
    }
    incidentAPI.getClosedIncidents(pageNo, res => {
      let oldList = that.data.closed.incidentList || [];
      that.setData({
        closed: {
          incidentList: oldList.concat(res.data.page.data),
          totalPage: res.data.page.totalPageCount,
          currentPage: res.data.page.currentPageNo
        }
      })
      doneCallBack();
    })
  },
  touchLower: function (options) {
    
  },
  loadCurrentTab: function (page = 1) {
    const currentTab = this.data.currentTab;
    if (currentTab === 0) {
      this.loadOpenIncidentData(page);
    } else {
      this.loadClosedIncidentData(page);
    }
  },
  switchNavClick: function (e) {
    var that = this;

    if (this.data.currentTab === e.target.dataset.current) {
      return false;
    } else {
      that.setData({
        currentTab: e.target.dataset.current
      })
      that.loadCurrentTab();
    }
  },

  swiperChange: function (e) {
    var that = this;
    that.setData({ currentTab: e.detail.current });
    that.loadCurrentTab();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    debugger
    const currentTab = this.data.currentTab;
    const pageObj = this.data[currentTab === 0 ? 'open' : 'closed'];
    let newPageNo = pageObj.currentPage + 1;
    if (pageObj.currentPage === pageObj.totalPage) {
      wx.showToast({
        title: 'No more pages...',
      })
      return;
    }
    this.loadCurrentTab(newPageNo);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})